/************************************************/
/*    Auteur    : Yoann NICOD                   */
/*    Programme : Atomic Bomberman Origins      */
/*    Fichier   : moduleaudio.h                 */
/*    Date      : 18/11/2012                    */
/************************************************/

#ifndef MODULEAUDIO_H
#define MODULEAUDIO_H

#include <SFML/Audio.hpp>
#include <vector>
#include <map>

using namespace sf;
using namespace std;

class FichierSon
{
public:
	FichierSon();
	~FichierSon();

	int m_TypeSon;
	char m_NomFichier[256];
	SoundBuffer m_Buffer;

	enum
	{
		AucunType,
		MusiqueMenu,
		ExplosionBombe
	};	
};

class ModuleAudio
{
public:
	ModuleAudio();
	~ModuleAudio();

	static void ArreterSon(int IDSon);
	int JouerSon(int TypeSon, bool JouerEnBoucle, bool SuppressionAutomatique = true);
	
private:
	map<int, vector<FichierSon>> m_ListeFichiersSon;
	static map<UINT_PTR, Sound*> m_ListeSonsJoues;

	int AjouterFichierSon(FichierSon &MonFichierSon);
	FichierSon *ChoisirSon(int TypeSon);
	void ChargerFichiersSon();
	static VOID CALLBACK CallbackSuppressionSon(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
};


#endif